﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AppGISENA.UIServicios.ServiciosRemotos;
using Ext.Net;

using AppGISENA.ObjetosNegocio;
using AppGISENA.UIServicios;
namespace AppGisena.Presentacion.Up
{
    public partial class RegistroUP : System.Web.UI.Page
    {
        private UnidadProductivaServicios myservicios = new UnidadProductivaServicios(); 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {


                CargarListas();
            }
        }

        public void CargarListas()
        {
            //  X.Msg.Notify("GISENA", "funciona").Show();
            try
            {

                StTipoUP.DataSource = myservicios.GetTipoUP();
                StTipoUP.DataBind();

                StEstado.DataSource = myservicios.GetEstadoUP();
                StEstado.DataBind();
            }

            catch { }
        }

        /// <summary>
        /// buscar la si Up esta registrada en GISENA  
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Btn_BuscarUPGISENA_Click(object sender, DirectEventArgs e)
        {

            if (Txt_Cod_Up.Text != null)
            {
                try
                {
                    //buscar si la UP esta registrada en GISENA



                    var sofia = myservicios.getUPSofiaById((int.Parse)(Txt_Cod_Up.Text));

                    PanelCarat.Disabled = false;
                    if (sofia == null)
                    {
                        X.Msg.Notify("GISENA", "No se encuentra la Unidad Productiva, Busque en SOFIA PLUS").Show();
                        // ventana_up.Show();
                        //limpiar los controles

                        Txt_Cod_Cent_Form2.Text = " ";
                        Txt_NFicha_UP2.Text = "";
                        Txt_Nomb_UP2.Text = "";
                        // PanelDatosofia.Disabled = false;
                        PanelDatosofia.Disabled = false;
                        PanelCarat.Disabled = true;
                        TabPrinc.ActiveIndex = 0;

                    }
                    else
                    {
                        Txt_Cod_Cent_Form2.Text = sofia.Cod_Cent_Form.ToString();
                        Txt_NFicha_UP2.Text = sofia.NFicha_UP;
                        Txt_Nomb_UP2.Text = sofia.Nomb_UP;
                        //busca en caracterizacion

                       
                       Slb_Tp_up.Value= sofia.Id_Tp_UP;
                        //= sofia.Caracterizacion_UP.Id_Tp_UP.ToString();
                        Sel_Id_Est_up.Value = sofia.Id_Est_up;
                        
                        TxtA_Descripcion_UP.Text = sofia.Descripcion_UP;
                        Txt_Num_Act_Mat.Text = sofia.Num_Act_Mat;
                      

                        PanelDatosofia.Disabled = true;

                        TabPrinc.ActiveIndex = 1;
                        //Si no hay datos en caracterizacion mostrar mensaje para que le usuario los llenes
                        //si hay datos en caracterizacion, cargar y mostrar estos datos
                    }




                }
                catch
                {

                    //falla en la conectividad, o sistema no disponible
                }
            }
            else
            {
                X.Msg.Alert("GISENA", "Digite el codigo de la Unidad Productiva").Show();

            }
        }




        /// <summary>
        /// Registrar Caracterizacion de la UP en GISENA
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Btn_Registrar_caract(object sender, DirectEventArgs e)
        {
            try
            {
                CaracterizacionBo mycaracterizacion = new CaracterizacionBo()

                {

                    Id_Tp_UP = int.Parse(Slb_Tp_up.SelectedItem.Value),

                    Descripcion_UP = TxtA_Descripcion_UP.Text,
                    Num_Act_Mat = Txt_Num_Act_Mat.Text,
                    Id_Est_up = int.Parse(Sel_Id_Est_up.SelectedItem.Value),
                    Fech_Reg = DateTime.Now



                };


                myservicios.CreateUnidadProductiva(mycaracterizacion);



                X.Msg.Notify("GISENA", "Caracterizacion UP Guardada").Show();
            }
            catch { }

        }

        /// <summary>
        /// REgistrar datos basico tomados de Sofia Plsu en GISENA (UP_Sofia)       
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Btn_Registrar_Up(object sender, DirectEventArgs e)
        {
            try
            {

                UnidadProductivaSofiaBo myUPsofia = new UnidadProductivaSofiaBo
                {



                    Cod_Cent_Form = int.Parse(Txt_Cod_Cent_Form.Text),
                    NFicha_UP = Txt_NFicha_UP.Text,
                    Cod_UP = long.Parse(Cod_UP.Text),
                    Nomb_UP = Nomb_UP.Text,
                    Fecha_Creac = (DateTime.Parse(DfechaCreacion.Text)),

                    Fecha_Ent_Mat = (DateTime.Parse(DFechaEntregaMat.Text))



                };


                myservicios.CreateUPSofia(myUPsofia);

                PanelCarat.Enabled = true;
                X.Msg.Notify("GISENA", "UP Registrada en GISENA:").Show();

                //ventana_up.Close();
                PanelCarat.Disabled = false;






            }
            catch
            {


            }

        }

        /// <summary>
        /// BUSCAR EN sofiaplus
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //  [DirectMethod]
        protected void Btn_BuscarUP_Sofia(object sender, DirectEventArgs e)
        {
            if (txt_codUPSofia.Text != null)
            {
                try
                {
                    //buscar up en Sofia

                    var mysofiap = myservicios.getUPSofiaRemotaById((txt_codUPSofia.Text));
                    var mysofia = mysofiap.FirstOrDefault();
                    //Asignamos a los controles los valores obtenidos
                    Txt_Cod_Reg.Text = mysofia.REG_ID.ToString();
                    Txt_Nombre_Reg.Text = mysofia.REGIONAL.ToString();
                    Txt_Cod_Cent_Form.Text = mysofia.CTR_ID.ToString();
                    Txt_Nombre_Cen_For.Text = mysofia.CENTRO.ToString();
                    Txt_NFicha_UP.Text = mysofia.FICHA.ToString();
                    Cod_UP.Text = mysofia.COD_UNIDAD_PROD.ToString();
                    Nomb_UP.Text = mysofia.NOMBRE_UP.ToString();
                    DfechaCreacion.Text = mysofia.FECHA_CREA_UP.Value.ToString();
                    DFechaEntregaMat.Text = mysofia.FECHA_ENTREGA_MATERIALES.Value.ToString();



                    PanelCarat.Disabled = false;

                
                   

                }
                catch (Exception ex)
                {
                    X.Msg.Alert("GISENA", "Revise conexion" + ex).Show();

                    //falla en la conectividad, o sistema no disponible
                }
            }

            else
            {
                X.Msg.Alert("GISENA", "Digite el codigo de Unida Productiva").Show();

            }

        }
    }
}